export default {
  // 指定测试环境
  testEnvironment: 'jsdom',
  
  // 转换文件的配置
  transform: {
    // 使用 babel-jest 处理 js/jsx 文件
    '^.+\\.(js|jsx)$': 'babel-jest',
    // 使用 vue-jest 处理 vue 文件
    '^.+\\.vue$': '@vue/vue3-jest'
  },
  
  // 模块名称映射
  moduleNameMapper: {
    // 处理样式文件
    '\\.(css|less|scss|sass)$': 'identity-obj-proxy'
  },
  
  // 测试文件匹配模式
  testMatch: [
    '**/__tests__/**/*.[jt]s?(x)',
    '**/?(*.)+(spec|test).[jt]s?(x)'
  ],
  
  // 测试覆盖率收集
  collectCoverageFrom: [
    'src/**/*.{js,jsx,vue}',
    '!**/node_modules/**',
    '!**/dist/**'
  ],
  
  // 转换忽略模式
  transformIgnorePatterns: [
    '/node_modules/(?!(@vue|vue|vue-demi))'
  ],
  
  // 添加测试环境设置
  testEnvironmentOptions: {
    customExportConditions: ['node', 'node-addons']
  },
  
  // 添加全局设置
  globals: {
    'vue-jest': {
      compilerOptions: {
        isCustomElement: (tag) => tag.startsWith('ion-')
      }
    }
  }
};